package com.itheima.gui;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/*
 *
 *      用户登录
 *
 * */
//实现用户登录这个案例,注意类名必须跟java文件名一致,且不能是java已经定义的类
public class UserLogin {
    //程序的主入口,main方法
    public static void main(String[] args) {
        //创建窗体对象
        JFrame jf = new JFrame();
        //设置大小(单位是px像素)
        jf.setSize(400, 400);
        //基本设置
        //1.窗体标题
        jf.setTitle("登录界面");
        //2.居中显示
        jf.setLocationRelativeTo(null);
        //3.窗体关闭停止程序
        jf.setDefaultCloseOperation(3);
        //4.设置窗体置顶:为了别的窗体覆盖它
        jf.setAlwaysOnTop(true);
        //取消默认布局
        jf.setLayout(null);


        //用户名文本
        JLabel usernameJLabel = new JLabel("用户名");
        //设置大小
        usernameJLabel.setBounds(50, 50, 50, 20);
        //添加到窗体中
        jf.add(usernameJLabel);

        //密码文本
        JLabel passwordJLabel = new JLabel("密码");
        passwordJLabel.setBounds(50, 100, 50, 20);
        //添加到窗体中
        jf.add(passwordJLabel);

        //用户名输入框
        JTextField usernameField = new JTextField();
        //设置大小
        usernameField.setBounds(150, 50, 180, 20);
        //将文本框添加到窗体中
        jf.add(usernameField);

        //密码输入框
        JPasswordField passwordField = new JPasswordField();
        //设置大小
        passwordField.setBounds(150, 100, 180, 20);
        //将密码输入框添加到窗体中
        jf.add(passwordField);

        //登录按钮
        JButton button = new JButton("登录");
        //设置大小
        button.setBounds(50, 200, 280, 20);
        //将按钮添加到窗体中
        jf.add(button);


        //定义用户名与密码(模拟登录过程)
        String username = "陈平安爱宁姚";
        String password = "123456";

        //给按钮添加点击事件
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //通过输入框对象,获取用户输入的数据
                String name = usernameField.getText().trim();//去除用户输入的空格
                String psw = passwordField.getText().trim();

                //判断用户名的长度
                if (name.length() < 6 || name.length() > 12) {
                    JOptionPane.showMessageDialog(jf, "用户名的长度是6-12位请重新输入");//弹框弹在哪  弹框内容
                    //对输入框进行清除
                    usernameField.setText("");
                    //结束方法
                    return;
                }
                //判断密码的长度
                if (psw.length() < 6 || psw.length() > 12) {
                    //用消息框进行提示,而不是在控制台进行打印
                    JOptionPane.showMessageDialog(jf, "密码的长度是6-12位请重新输入");
                    //对错误的密码进行清空
                    passwordField.setText("");
                    //结束方法
                    return;
                }

                //对密码和用户名进行校验
                if (name.equals(username) && psw.equals(password)) {
                    //进行消息框提示登录成功
                    JOptionPane.showMessageDialog(jf, "登录成功");
                    //对密码和用户名进行请空
                    usernameField.setText("");
                    passwordField.setText("");
                }else{
                    //提示登录失败
                    JOptionPane.showMessageDialog(jf, "用户名或密码错误,请重新登录");
                    //清空
                    usernameField.setText("");
                    passwordField.setText("");
                }


            }
        });

        //谁知窗体可见,写在最后
        jf.setVisible(true);

    }
}
